<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="Content-Language" content="zh-CN"><title>systemd-ask-password
  中文手册 [金步国]</title><style>
@font-face { font-family: "JinBuGuoWebMono"; src: url("http://www.jinbuguo.com/d/mono.ttf") format("truetype"); }
* { font-family: "JinBuGuoWebMono", "Ubuntu Mono", "Consolas", "Menlo", monospace; }
body { margin:10px; }
h1 { text-align:center; background:#ddd; }
h2#auth_name { text-align:center; margin: 10px 5%; }

    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
</style><script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><h1>systemd-ask-password 中文手册</h1><h2 id="auth_name">译者：<strong><a href="../index.html">金步国</a></strong></h2><hr><h3>版权声明</h3><p>本文译者是一位开源理念的坚定支持者，所以本文虽然不是软件，但是遵照开源的精神发布。</p><ul><li>无担保：本文译者不保证译文内容准确无误，亦不承担任何由于使用此文档所导致的损失。</li><li>自由使用：任何人都可以自由的<u>阅读/链接/打印</u>此文档，无需任何附加条件。</li><li>名誉权：任何人都可以自由的<u>转载/引用/再创作</u>此文档，但必须保留译者署名并注明出处。</li></ul><h3>其他作品</h3><p>本文译者十分愿意与他人分享劳动成果，如果你对我的其他翻译作品或者技术文章有兴趣，可以在如下位置查看现有的作品集：</p><ul><li><a href="../index.html">金步国作品集</a> [ <a href="../index.html">http://www.jinbuguo.com/</a> ]</li></ul><h3>联系方式</h3><p>由于译者水平有限，因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好)，请来信指出，任何提高译文质量的建议我都将虚心接纳。</p><ul><li>Email(QQ)：70171448在QQ邮箱</li></ul><hr><a href="systemd.index.html">手册索引</a> ·
  <a href="systemd.directives.html">指令索引</a><span style="float:right">systemd-241</span><hr><div class="refentry"><a name="systemd-ask-password"></a><div class="titlepage"></div><div class="refnamediv"><h2>名称</h2><p>systemd-ask-password — 向用户索要密码</p></div><div class="refsynopsisdiv"><h2>大纲</h2><div class="cmdsynopsis"><p><code class="command">systemd-ask-password [OPTIONS...]  [MESSAGE]</code> </p></div></div><div class="refsect1"><a name="id-1.5"></a><h2 id="描述">描述<a class="headerlink" title="Permalink to this headline" href="systemd-ask-password.html#%E6%8F%8F%E8%BF%B0">¶</a></h2><p><span class="command"><strong>systemd-ask-password</strong></span>
    通过向用户显示  [MESSAGE] 消息的方式索要密码或口令。
    当在TTY上运行时，它将从TTY读取密码，
    然后再将密码打印到标准输出。
    当不在TTY上运行或使用 <code class="option">--no-tty</code> 选项时，
    它将使用全系统通用的密码查询机制，
    从而允许活动用户通过多种密码代理进行应答(参见下文)。</p><p>此工具主要用于
    向全系统范围索要不特定于某个账户的密码。
    例如：
    用于解开加密硬盘的密码、
    用于解开SSL证书的口令(常用于HTTP/VPN服务器)。</p><p>目前可用的密码代理如下：
    </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>一个显示启动动画的工具，
      亦可用作启动时密码代理：
      <a href="https://linux.die.net/man/8/plymouth"><span class="citerefentry"><span class="refentrytitle">plymouth</span>(8)</span></a>
      </p></li><li class="listitem"><p>启动时
      直接在控制台上向用户索要密码的密码代理：
      <code class="filename">systemd-ask-password-console.service</code>
      </p></li><li class="listitem"><p>通过
      <a href="http://man7.org/linux/man-pages/man1/wall.1.html"><span class="citerefentry"><span class="refentrytitle">wall</span>(1)</span></a>
      消息获取密码的密码代理：
      <code class="filename">systemd-ask-password-wall.service</code>
      </p></li><li class="listitem"><p>可配合
      <a href="systemctl.html#"><span class="citerefentry"><span class="refentrytitle">systemctl</span>(1)</span></a>
      命令临时启动的TTY密码代理</p></li><li class="listitem"><p>能够被临时启动
      以处理一系列连续请求的命令行密码代理：
      <span class="command"><strong>systemd-tty-ask-password-agent --query</strong></span>
      </p></li></ul></div><p>因为回答全系统通用的密码查询是一个特权操作，
    所以上述所有密码代理(最后一个除外)都只能用于拥有特权的系统服务。
    注意，因为最后一个密码代理实际上也需要较高的权限，
    所以在实践中应该使用例如
    <a href="https://linux.die.net/man/8/sudo"><span class="citerefentry"><span class="refentrytitle">sudo</span>(8)</span></a>
    这样的方式来运行。</p><p>此外，
    还可以根据 <a class="ulink" href="https://www.freedesktop.org/wiki/Software/systemd/PasswordAgents" target="_top">systemd
    Password Agent Specification</a> 规范编写其他类型的密码代理。</p><p>在TTY上输入密码时，用户可以按一下TAB键，
    这样在输入密码时就不会显示星号。
    在开始输入密码前按退格键(Backspace)也有同样的效果。</p></div><div class="refsect1"><a name="id-1.6"></a><h2 id="选项">选项<a class="headerlink" title="Permalink to this headline" href="systemd-ask-password.html#%E9%80%89%E9%A1%B9">¶</a></h2><p>能够识别的命令行选项如下：</p><div class="variablelist"><dl class="variablelist"><dt id="--icon="><span class="term"><code class="option">--icon=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-ask-password.html#--icon=">¶</a></dt><dd><p>在询问密码的同时显示一个图标，
        仅用于图形界面的密码代理。
        图标名称必须遵守 <a class="ulink" href="https://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html" target="_top">XDG
        图标命名规范</a>。</p></dd><dt id="--id="><span class="term"><code class="option">--id=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-ask-password.html#--id=">¶</a></dt><dd><p>为此次密码索要动作指定一个标识符，
        以辨别此密码适用于密码代理的哪个请求。
        其中必须包含
        请求密码的子系统以及密码的作用对象。
        例如：
        "<code class="literal">--id=cryptsetup:/dev/sda5</code>"</p></dd><dt id="--keyname="><span class="term"><code class="option">--keyname=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-ask-password.html#--keyname=">¶</a></dt><dd><p>指定一个
        用于缓存密码的内核密钥环(keyring)名称。
        设置此选项表示
        尽可能将收集到的密码缓存到指定的内核密钥环(keyring)中(该密钥环必须属于root用户)。若与
        <code class="option">--accept-cached</code>
        一起使用，
        则表示
        首先从指定的内核密钥环缓存中查找所需密码，
        仅在找不到的情况下才提示用户输入，
        这样当多个对象都使用同一个密码时，
        就可以避免让用户反复输入同一个密码。
        密码的缓存有效期是2.5分钟，
        超时后将被删除。
        同一个内核密钥环中可以缓存多个密码。
        可以使用
        <a href="https://linux.die.net/man/1/keyctl"><span class="citerefentry"><span class="refentrytitle">keyctl</span>(1)</span></a>
        工具访问内核密钥环中缓存的密码。
        例如： "<code class="literal">--keyname=cryptsetup</code>"</p></dd><dt id="--timeout="><span class="term"><code class="option">--timeout=</code></span><a class="headerlink" title="Permalink to this term" href="systemd-ask-password.html#--timeout=">¶</a></dt><dd><p>设置等待用户输入密码的最大时长。
        默认"90s"，设为"0"表示无限等待。</p></dd><dt id="--echo"><span class="term"><code class="option">--echo</code></span><a class="headerlink" title="Permalink to this term" href="systemd-ask-password.html#--echo">¶</a></dt><dd><p>直接显示用户的输入
        (而不是显示为星号或者不显示)，
        常用于输入
        无需保密的用户名。</p></dd><dt id="--no-tty"><span class="term"><code class="option">--no-tty</code></span><a class="headerlink" title="Permalink to this term" href="systemd-ask-password.html#--no-tty">¶</a></dt><dd><p>不在当前TTY上读取密码(即使当前TTY可用)，
        而是从密码代理读取密码。</p></dd><dt id="--accept-cached"><span class="term"><code class="option">--accept-cached</code></span><a class="headerlink" title="Permalink to this term" href="systemd-ask-password.html#--accept-cached">¶</a></dt><dd><p>允许从密码缓存中查找
        先前曾经输入过的密码。</p></dd><dt id="--multiple"><span class="term"><code class="option">--multiple</code></span><a class="headerlink" title="Permalink to this term" href="systemd-ask-password.html#--multiple">¶</a></dt><dd><p>与
        <code class="option">--accept-cached</code> 连用，
        表示可以接收多个密码(每行输出一个密码)。</p></dd><dt id="--no-output"><span class="term"><code class="option">--no-output</code></span><a class="headerlink" title="Permalink to this term" href="systemd-ask-password.html#--no-output">¶</a></dt><dd><p>不在标准输出上打印密码。
        此选项常用于
        仅希望将密码存储到内核密钥环中(<code class="option">--keyname</code>)，
        而不希望显示在屏幕上或记录到日志中。</p></dd><dt id="-h"><span class="term"><code class="option">-h</code>, </span><span class="term"><code class="option">--help</code></span><a class="headerlink" title="Permalink to this term" href="systemd-ask-password.html#-h">¶</a></dt><dd><p><a name="help-text"></a>显示简短的帮助信息并退出。
    </p></dd></dl></div></div><div class="refsect1"><a name="id-1.7"></a><h2 id="退出状态">退出状态<a class="headerlink" title="Permalink to this headline" href="systemd-ask-password.html#%E9%80%80%E5%87%BA%E7%8A%B6%E6%80%81">¶</a></h2><p>返回值为 0 表示成功，
    非零返回值表示失败代码。</p></div><div class="refsect1"><a name="id-1.8"></a><h2 id="参见">参见<a class="headerlink" title="Permalink to this headline" href="systemd-ask-password.html#%E5%8F%82%E8%A7%81">¶</a></h2><p>
      <a href="systemd.html#"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
      <a href="systemd-ask-password-console.service.html#"><span class="citerefentry"><span class="refentrytitle">systemd-ask-password-console.service</span>(8)</span></a>,
      <a href="systemd-tty-ask-password-agent.html#"><span class="citerefentry"><span class="refentrytitle">systemd-tty-ask-password-agent</span>(1)</span></a>,
      <a href="https://linux.die.net/man/1/keyctl"><span class="citerefentry"><span class="refentrytitle">keyctl</span>(1)</span></a>,
      <a href="https://linux.die.net/man/8/plymouth"><span class="citerefentry"><span class="refentrytitle">plymouth</span>(8)</span></a>,
      <a href="http://man7.org/linux/man-pages/man1/wall.1.html"><span class="citerefentry"><span class="refentrytitle">wall</span>(1)</span></a>
    </p></div></div></body></html>
